package jmine.tec.executionlog.domain.enumx;

import jmine.tec.datadigester.DataDigesterMessages;
import bancosys.tec.exception.LocalizedMessageHolder;

/**
 * Status de item de execucao de Data Digester.
 * 
 * @author Marcio Ribeiro (mmr)
 * @created Jun 19, 2008
 */
public enum ExecutionItemStatus {
    /** OK! Processamento de Item foi executado com sucesso. */
    OK(DataDigesterMessages.EXECUTION_ITEM_STATUS_OK.create()),

    /** Nao OK! Processamento de Item ocorreu com erro. */
    NOT_OK(DataDigesterMessages.EXECUTION_ITEM_STATUS_NOT_OK.create()),

    /** Nao OK! Processamento de Item não foi feito. */
    NOT_EXECUTED(DataDigesterMessages.EXECUTION_ITEM_STATUS_NOT_EXECUTED.create()),

    /** Processamento executou a inserção de um novo Item com sucesso. */
    INSERT(DataDigesterMessages.EXECUTION_ITEM_STATUS_INSERT.create()),

    /** Processamento alterou os dados de um Item com sucesso . */
    UPDATE(DataDigesterMessages.EXECUTION_ITEM_STATUS_UPDATE.create()),

    /** Item tem pendencia que impedem seu processamento. */
    ALERT(DataDigesterMessages.EXECUTION_ITEM_STATUS_ALERT.create()),

    /** Processamento não executou nenhuma alteração para esse Item. */
    IGNORE(DataDigesterMessages.EXECUTION_ITEM_STATUS_IGNORE.create());

    private LocalizedMessageHolder message;

    /**
     * Construtor.
     * 
     * @param message message
     */
    private ExecutionItemStatus(LocalizedMessageHolder message) {
        this.message = message;
    }

    /**
     * @return string que representa esse estado do enum
     */
    @Override
    public String toString() {
        return this.message.getMessage();
    }
}
